﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Marin.Entities;
using Marin.Service;

namespace Marin.UI
{
    public partial class frmListCuenta : Form
    {
        private ICuentaService cuentaService;
        public frmListCuenta()
        {
            InitializeComponent();
            cuentaService = new CuentaService();
        }

        private void btnNuevo_Click(object sender, EventArgs e)
        {
            var frmCuenta = new frmMttCuenta();
            frmCuenta.AddCuenta();
            frmCuenta.ShowDialog();
        }

        private void frmListCuenta_Load(object sender, EventArgs e)
        {
            CargarData();
        }

        private void btnEditar_Click(object sender, EventArgs e)
        {
            var _cuenta = cuentaBindingSource.Current as Cuenta;

            if (_cuenta!=null)
            {
                var frmEdit = new frmCuenta();
                frmEdit.cuenta = _cuenta;
                frmEdit.UpdateCuenta();
                frmEdit.ShowDialog();
                
            }
            else
            {
                MessageBox.Show("Debe de seleccionar una Cuenta");
            }
            CargarData();
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            var _cuenta = cuentaBindingSource.Current as Cuenta;

            if (_cuenta != null)
            {
                var rpt = MessageBox.Show(this,
                    string.Format("¿Desea eliminar la marca: \n {0}?",
                    _cuenta.Descripcion),
                    "Mensaje",
                    MessageBoxButtons.YesNo,
                    MessageBoxIcon.Question);

                if (rpt == DialogResult.Yes)
                {
                    cuentaService.RemoveCuenta(_cuenta.Id);
                    CargarData();
                }
            }
            else
            {
                MessageBox.Show("Debe de seleccionar una Cuenta");
            }
        }
        private void CargarData()
        {
            var criterio = txtCriterio.Text == string.Empty ? null : txtCriterio.Text;
            cuentaBindingSource.DataSource = cuentaService.GetAllFromCuentasByCriterio(criterio);
        }
        private void btnBuscar_Click(object sender, EventArgs e)
        {
            CargarData();
        }
    }
}
